home *** CD-ROM | disk | FTP | other *** search
/ com!online 2005 May / com_0505_1.iso / opensource / top10 / amc_install.exe / {app} / Scripts / ShareReactor (large pic only).ifs < prev    next >
Encoding:
Text File  |  2004-03-20  |  3.5 KB  |  124 lines

  1. // GETINFO SCRIPTING
  2. // Imports large picture from sharereactor.com
  3. // Dmitry501
  4.  
  5. (***************************************************
  6.  *  For use with Ant Movie Catalog 3.4.0           *
  7.  *  www.antp.be/software/moviecatalog              *
  8.  *                                                 *
  9.  *  This program is free software; you can         *
  10.  *  redistribute it and/or modify it under the     *
  11.  *  terms of the GNU General Public License as     *
  12.  *  published by the Free Software Foundation;     *
  13.  *  either version 2 of the License, or (at your   *
  14.  *  option) any later version.                     *
  15.  ***************************************************)
  16.  
  17. program Sharereactor_com;
  18. const
  19.   BaseAddress = 'http://www.sharereactor.com/';
  20. var
  21.   MovieName: string;
  22.  
  23. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
  24. var
  25.   i: Integer;
  26. begin
  27.   result := -1;
  28.   if StartAt < 0 then
  29.     StartAt := 0;
  30.   for i := StartAt to List.Count-1 do
  31.     if Pos(Pattern, List.GetString(i)) <> 0 then
  32.     begin
  33.       result := i;
  34.       Break;
  35.     end;
  36. end;
  37.  
  38. procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer);
  39. var
  40.   Line: string;
  41.   MovieTitle, MovieAddress: string;
  42.   StartPos,EndPos,AddPos: Integer;
  43. begin
  44.     LineNr := LineNr + 9;
  45.     Line := Page.GetString(LineNr);
  46.     StartPos := pos('<a', Line);
  47. while StartPos > 0 do
  48.   begin
  49.     Line := Page.GetString(LineNr);
  50.     StartPos := pos('<a', Line);
  51.     if StartPos > 0 then
  52.     begin
  53.       StartPos:=StartPos+8;
  54.       EndPos := Length(Line);
  55.       Line:=copy(Line,StartPos,EndPos - StartPos);
  56.       MovieAddress := copy(Line, 2, pos('">', Line) -2 );
  57.       StartPos := pos('">', Line) + 2;
  58.       MovieTitle := copy(Line, StartPos, pos('</a>', Line) - StartPos);
  59.       HTMLDecode(Movietitle);
  60.       PickTreeAdd(MovieTitle, BaseAddress + MovieAddress);
  61.     end;
  62.     LineNr := LineNr + 4;
  63.   end;
  64. end;
  65.  
  66. procedure AnalyzePage(Address: string);
  67. var
  68.   Page: TStringList;
  69.   LineNr : Integer;
  70. begin
  71.     Page := TStringList.Create;
  72.     Page.Text := GetPage(Address);
  73.     PickTreeClear;
  74.     LineNr := 0;
  75.     LineNr := FindLine('Total Matches:', Page, LineNr);
  76.     if LineNr > -1 then
  77.     begin
  78.       PickTreeAdd('Total Matches:','');
  79.       AddMoviesTitles(Page, LineNr);
  80.     end;
  81.     if PickTreeExec(Address) then
  82.      begin
  83.        Page.Free;
  84.        AnalyzeMoviePage(Address)
  85.      end
  86. end;
  87.  
  88. procedure AnalyzeMoviePage(Address: String);
  89. var
  90.   Page: TStringList;
  91.   LineNr : Integer;
  92.   Line, Value : String;
  93.   BeginPos, EndPos : Integer;
  94.  
  95. begin
  96.   Page := TStringList.Create;
  97.   Page.Text := GetPage(Address);
  98.   // Picture
  99.   LineNr := FindLine('Click here for a large version', Page, 0);
  100.   if LineNr > -1 then
  101.   begin
  102.     Line := Page.GetString(LineNr);
  103.     BeginPos := pos('<a href="', Line);
  104.     EndPos := pos('" target="_blank">', Line);
  105.     Value := copy(Line, BeginPos+9, EndPos - 9 - BeginPos);
  106.     GetPicture(Value, False);
  107.   end;
  108. DisplayResults;
  109. end;
  110.  
  111. begin
  112.   if CheckVersion(3,4,0) then
  113.   begin
  114.     MovieName := GetField(fieldOriginalTitle);
  115.     if MovieName = '' then
  116.       MovieName := GetField(fieldTranslatedTitle);
  117.     if Input('Import picture from sharereactor.com', 'Enter the title of the movie:', MovieName) then
  118.     begin
  119.          AnalyzePage('http://www.sharereactor.com/search.php?search='+UrlEncode(MovieName)+'&category=0&submit=Search');
  120.     end;
  121.   end else
  122.     ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.4.0)');
  123. end.
  124.